# 生成斐波那契数列的前20个数。

# 说明：斐波那契数列（Fibonacci sequence），又称黄金分割数列，是意大利数学家莱昂纳多·斐波那契（Leonardoda Fibonacci）
# 在《计算之书》中提出一个在理想假设条件下兔子成长率的问题而引入的数列，所以这个数列也被戏称为"兔子数列"。
# 斐波那契数列的特点是数列的前两个数都是1，从第三个数开始，每个数都是它前面两个数的和，
# 形如：1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...。斐波那契数列在现代物理、准晶体结构、化学等领域都有直接的应用。


from tkinter import N


def fibonacci(n):
    if n == 1:
        num_list = ['1']
    elif n == 2:
        num_list = ['1', '1']
    else:
        num_list = ['1', '1']
        fibonacci2(2, n, 1, 1, num_list)
    print(' '.join(num_list))
    

def fibonacci2(i, n, last_sum, sum, num_list:list):
    if i < n:
        new_sum = last_sum+sum
        num_list.append(str(new_sum))
        return fibonacci2(i + 1, n, sum, last_sum+sum, num_list)
    else:
        return num_list


if __name__ == '__main__':
    while True:
        n = int(input('输入生成斐波那契数列个数'))
        fibonacci(n)
